Memory diagnostic programs are used in computer systems to detect and identify faults or errors in memory subsystems of computers. Typically, memory diagnostic programs test memory by writing specific data patterns to memory, then reading back these patterns for verification. A diagnostic control program (DCP) is often utilized to manage the operation of the memory diagnostic programs. Because the specific data patterns written to memory in these types of read/write tests are written over whatever data is currently present in the memory, this read/write testing process is referred to as destructive testing because it destroys the contents of the memory being tested.
The base memory of a computer system typically includes the computer's operating system (e.g., DOS.RTM., Windows.RTM., etc.) as well as a diagnostic control program (DCP) and at least one memory diagnostic program. When diagnostic memory tests are run, this base memory (0-640 KB in the IBM.RTM. PS/2.RTM. system) cannot be read/write tested for faults or errors like other memory in the system because the operating system, the DCP, and the diagnostic programs, all of which are required to run the tests, reside therein. Any attempt at destructively testing the base memory of a system, then, would terminate operation of the operating system, and hence the computer.
Typically, this base memory is read-only tested, wherein the contents of the base memory are read, but not written over with specific data patterns which may be read back and compared to the written data. For example, the diagnostics included on many reference diskettes provided with personal computer systems do not perform a thorough, read/write test on the system base memory. Such known read-only base memory diagnostics are not as effective in detecting and identifying base memory failures as are destructive read/write tests.
In many computer systems, the operating system, the DCP, and the memory diagnostic programs cannot be operated outside the base memory (physical addresses 0-640 KB) of the computer because operating systems such as DOS.RTM. require that they be addressed in the base memory (0-640 KB). It is important, however, to subject base memory to the same rigorous read/write destructive testing as is the other memory in the system. Accordingly, there is a need for a mechanism by which base memory, which includes the operating system for a computer, to be read/write tested while meeting the addressing requirements of the operating system.
The base memory which requires this read/write testing is often implemented, for example in the IBM.RTM.PS/2.RTM. system, utilizing single in-line memory modules (SIMMs). SIMMs typically comprise a small circuit board to which are attached one or two banks of dynamic random access memory (DRAM) chips. The DRAM chips contain the memory cells which are used for storage. The sizes of SIMMs vary, and are in part dependent on the number and size of the DRAMs used to construct them. For example, a 1 MB SIMM comprises a single bank of 1 MB DRAMs, a 4 MB SIMM comprises a single bank of 4 MB DRAMs, and an 8 MB SIMM is constructed from two banks of 4 MB DRAMs. Bank sizes vary, but are typically comprised of between eight and ten DRAMs. In the future, it is likely that SIMM architecture will provide 16 and 32 MB SIMMs comprised of 16 MB DRAMs.
Base memory comprised of SIMMs should be thoroughly tested for a variety of errors. One type of error, referred to as a cell disturbance or "crosstalk" failure, is dependent on the internal structure of these DRAM chips, which varies by manufacturer. Crosstalk occurs between two physically adjacent cells, when a first cell is written to and the contents of an adjacent cell are changed as a result of writing to the first cell. Such "crosstalk" cannot be detected by reading only the first cell.
It is important that individual banks of DRAMs which make up a particular SIMM be tested in their entirety in order to uncover crosstalk failures. Although DRAM memory cells are logically addressed by the operating system in sequential order, the physical layout of the memory chip is often such that two memory cells that are physically adjacent to each other on the DRAM chip may not have logical addresses which are adjacent. Accordingly, if the entire memory bank is not tested during a single test, crosstalk failures between cells that are physically adjacent but which do not have adjacent addresses will not be uncovered.
In "A Unique Data Pattern, Generation Algorithm, and Application Methodology for Testing Read/Write Storage Facilities", IBM Technical Disclosure Bulletin, Vol. 33, No. 12, May 1991, R. G. Iseminger discusses crosstalk memory failures and outlines a memory test which will locate and identify these failures in SIMM memory modules regardless of the internal structure of the memory. However, Iseminger does not solve the problem of completely read/write testing the SIMM modules which comprise the base memory of the system and which contain the operating system, the DCP, and the memory diagnostic programs.
Because SIMM memory bank sizes of 1 MB and 4 MB are standard, the minimum amount of base memory that does not receive complete read/write testing is 1 MB. In the case of two-way interleaved memory, two individual SIMM banks are combined to create one memory bank which is twice the size of the individual SIMM banks. For a system using two-way interleaved memory involving SIMM bank pairs, such as the IBM.RTM. PS/2.RTM. Models 90 486 and 95 486, the minimum memory size not read/write tested is 2 MB and the worst case is 8 MB. With the possibility of future systems employing larger SIMM banks, or using 4-way interleaving, the situation will only worsen.
Thus it is an object of the present invention to provide a method and system in a computer system for testing base system memory in which the computer's operating system resides, utilizing a full read/write test. It is a further object of the invention to provide such a system and method which may be utilized on base memories comprised of SIMM memory banks and which test the SIMM banks in their entirety.